<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <body>

        <ui:composition template="./plantilla.xhtml">

            <ui:define name="content">
                
                <h:form id="formularioDatos">
                    
                    <p:dataTable id="tablaDatos" value="#{empleadoAccion.obtenerTodos()}" var="entidad" >
                        <f:facet name="header">
                            <h:outputText value="Lista Cliente"/>
                        </f:facet>
                        <p:column headerText="Id" filterBy="#{entidad.idempleado}" filterMatchMode="contains">
                            <h:outputText value="#{entidad.idempleado}"/>
                        </p:column>
                        <p:column headerText="Nombre" filterBy="#{entidad.nombre}" filterMatchMode="contains">
                            <h:outputText value="#{entidad.nombre}"/>
                        </p:column>
                        <p:column headerText="Apellido" filterBy="#{entidad.apellido}" filterMatchMode="contains">
                            <h:outputText value="#{entidad.apellido}"/>
                        </p:column>
                        <p:column headerText="DUI" filterBy="#{entidad.dui}" filterMatchMode="contains">
                            <h:outputText value="#{entidad.dui}"/>
                        </p:column>
                        <p:column headerText="NIT" filterBy="#{entidad.nit}" filterMatchMode="contains">
                            <h:outputText value="#{entidad.nit}"/>
                        </p:column>
                        <p:column headerText="Acciones">
                            <p:commandButton value="Ver" icon="ui-icon-search" actionListener="#{empleadoAccion.seleccionEntidadListaDatos()}"  oncomplete="dialogoMan.show()" update=":formularioMantenimiento">
                                <f:setPropertyActionListener value="#{entidad}" target="#{empleadoAccion.entidad}"/>
                            </p:commandButton>
                        </p:column>
                        <f:facet name="footer">
                            <p:commandButton value="Nuevo" actionListener="#{empleadoAccion.generarNuevaEntidad()}"  oncomplete="dialogoMan.show()" update=":formularioMantenimiento"/>
                        </f:facet>
                    </p:dataTable>
                    
                </h:form >
                
                <h:form id="formularioMantenimiento">
                    <p:dialog id="mantenimientoDialogo" widgetVar="dialogoMan" modal="true" header="Mantenimiento #{empleadoAccion.entidad.class.simpleName}">
                        <p:ajax event="close" listener="#{empleadoAccion.refrescarCampos()}" update="@form" />
                        <h:panelGrid columns="2">
                            <h:outputText value="Id:"/>
                            <p:inputText id="IdCliente" value="#{empleadoAccion.entidad.idempleado}" readonly="#{!empleadoAccion.nuevoRegistro}" required="true" requiredMessage="Campo Id es obligatorio"/>
                            <h:outputText value="Nombre :"/>
                            <p:inputText id="NombreCliente" value="#{empleadoAccion.entidad.nombre}" required="true" requiredMessage="Campo Nombre es obligatorio"/>
                            <h:outputText value="Apellido :"/>
                            <p:inputText id="ApellidoCliente" value="#{empleadoAccion.entidad.apellido}" required="true" requiredMessage="Campo Apellido es obligatorio"/>
                            <h:outputText value="DUI :"/>
                            <p:inputText id="dui" value="#{empleadoAccion.entidad.dui}" maxlength="9" required="true" requiredMessage="Campo DUI es obligatorio">
                                <f:convertNumber integerOnly="true" pattern="#########"/>
                                  <f:validateLongRange minimum="100000000" maximum="9999999999"/>
                            </p:inputText>
                            <h:outputText value="NIT :"/>
                            <p:inputText id="nit" value="#{empleadoAccion.entidad.nit}" maxlength="14" required="true" requiredMessage="Campo NIT es obligatorio">
                                <f:convertNumber integerOnly="true" pattern="##############"/>
                                 <f:validateLongRange minimum="10000000000000" maximum="99999999999999"/>
                            </p:inputText>
                            <h:outputText value="Telefono oficina :"/>
                            <p:inputText id="telefonooficina" value="#{empleadoAccion.entidad.telefonooficina}" required="false" maxlength="8">
                                <f:convertNumber integerOnly="true" pattern="########"/>
                                <f:validateLongRange minimum="20000000" maximum="29999999"/>
                            </p:inputText>
                            <h:outputText value="Telefono Celular :"/>
                            <p:inputText id="telefonocelular" value="#{empleadoAccion.entidad.telefonocelular}" required="true" requiredMessage="Campo telefono celular es obligatorio" maxlength="8">
                                <f:convertNumber integerOnly="true" pattern="########"/>
                                <f:validateLongRange minimum="60000000" maximum="79999999"/>
                            </p:inputText>    
                            <h:outputText value="Telefono Casa :"/>
                            <p:inputText id="telefonocasa" value="#{empleadoAccion.entidad.telefonocasa}" required="false" maxlength="8">
                                <f:convertNumber integerOnly="true" pattern="########"/>
                                <f:validateLongRange minimum="20000000" maximum="29999999"/>
                            </p:inputText>
                            <h:outputText value="Correo :"/>
                            <p:inputText id="correo" value="#{empleadoAccion.entidad.correo}" required="true" requiredMessage="Campo correo es obligatorio">
                                <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
                            </p:inputText>
                            <h:outputText value="Red Social :"/>
                            <p:inputText id="redessociales" value="#{empleadoAccion.entidad.redessociales}" required="false"/>
                            
                            <p:commandButton value="Guardar" action="#{empleadoAccion.modificar()}" update=":mensajes :formularioDatos:tablaDatos :formularioMantenimiento" oncomplete="dialogoMan.show()"/>
                            <p:commandButton value="Eliminar" rendered="#{!empleadoAccion.nuevoRegistro}" onclick="confirmation.show();"/>
                        </h:panelGrid>
                    </p:dialog>
                </h:form>
                <h:form>
                    <p:confirmDialog id="confirmDialog" message="¿Esta seguro que desea eliminar la entidad #{empleadoAccion.entidad.class.simpleName}?"  
                                     header="Confirmación de Eliminación" severity="alert" widgetVar="confirmation">  
                        <p:commandButton id="confirm" value="Si" oncomplete="confirmation.hide()" actionListener="#{empleadoAccion.eliminar()}" 
                                         update=":mensajes :formularioDatos:tablaDatos :formularioMantenimiento:mantenimientoDialogo"/>  
                        <p:commandButton id="decline" value="No" onclick="confirmation.hide()" type="button" />   

                    </p:confirmDialog>
                </h:form>
                
            </ui:define>

        </ui:composition>

    </body>
</html>
